Csit.Delta.CalcClient.D8CalcInstance
D8-CalcInstance¶
Инстанс, внутри которого реализованы алгоритмы обработки данных. Исходной информацией для такой обработки являются значения (текущие и архивные) параметров любых других инстансов системы Дельта либо других параметров внутри того же инстанса.
Параметры D8-CalcInstance¶
Реализовано несколько видов параметров для выполнения различных задач. Каждый тип обладает своим набором настроек.
Все эти настройки кодируются специальным образом с помощью строки определения параметра ParamDef.
Параметр может иметь псевдоним ParamAlias.
Если псевдоним параметра задан, то идентификатор SID параметра будет иметь вид:
<CiSid> ::= <InstanceName> "." <ParamAlias>
Если псевдоним не задан, то SID параметра будет содержать полную строку определения параметра:
<CiSid> ::= <InstanceName> "." <ParamDef>
<ParamDef> :: = "`" [{ <PropName> "=" <PropValue> "`" }] <ParamFunction> [ "(" <ArgumentList> ")" ]
<ParamFunction> ::= CONST | CONSTPWL | WRP | F | SIM | DIAG
Внутри строки ParamDef содержаться пары ключ/значение, разделенные символом "`". Каждая пара задает значение для одного из свойств параметра.
Кроме того в строке содержится название функции параметра ParamFunction с опциональными аргументами. Эта функция определяет вид параметра, а значит и набор его свойств, и алгоритм вычисления его значений.
Общие атрибуты строки определения параметра¶
Для любого вида параметров можно задать следующие свойства:
<CommonPropName> ::= "N" | "SN" | "AN" | "AKS" | "SCL" | "SCH" | "SCS" | "U" | "AU" | "AC" | "RH1" | "RH2" | "RL1" | "RL2" | "VL" | "VH" | "NV" | "NL" | "NH"
-
N
Локальное имя (ID8ParamInfo.LocalName)
-
SN
Краткое имя (ID8ParamInfo.ShortName)
-
AN
Дополнительное имя (ID8ParamInfo.AdditionalName)
-
AKS
Код AKS (ID8ParamInfo.AKS)
-
SCL
Минимум шкалы (ID8ParamInfo.Min)
-
SCH
Максимум шкалы (ID8ParamInfo.Max)
-
SCS
Перечень возможных значений параметра и их текстовых описаний (ID8ParamInfo.ScaleState). Дополнительно устанавливает минимум и максимум шкалы из перечня.
-
U
Единицы измерения (ID8ParamInfo.Units)
-
AU
Единицы измерения агрегированных значений (ID8ParamInfo.AggregatedUnits)
-
AC
Коэффициент агрегирования (ID8ParamInfo.AggregationCoef)
-
RH1
Верхняя предупредительная уставка (ID8ParamInfo.RangeUp1).
-
RH2
Верхняя аварийная уставка (ID8ParamInfo.RangeUp2).
-
RL1
Нижняя предупредительная уставка (ID8ParamInfo.RangeDown1).
-
RL2
Нижняя аварийная уставка (ID8ParamInfo.RangeDown2).
-
VL
Нижний предел достоверности (ID8ParamInfo.ValidLow).
-
VH
Врехний предел достоверности (ID8ParamInfo.ValidHigh).
-
NV
Номинальное значение.
-
NL
Нижняя граница коридора допустимых значений.
-
NH
Верхняя граница коридора допустимых значений.
Значений для SCS задается в виде пар, разделенных запятой. В каждой паре значение и текстовое описание разделяются двоеточием:
<ScaleStateValue> ::= "(" <Number> : <Description> [{ "," <Number> : <Description> }] ")"
Например:
SCS=(0:zero,1:one,2:two)
Например:
`N="Активная мощность"`U=МВт`SCL=0`SCH=540
Параметры-константы¶
Предназначены для создания параметров, имеющих неизменное значение.
<ConstParamDef> ::= "`" [{ "`" <ConstPropName> "=" <PropValue> }] "`CONST" [ "(" <ParamInfoPrototype> ")" ]
<ConstPropName> ::= <CommonPropName> | "V" | "N" | "U" | "T"
-
ParamInfoPrototype
SID параметра, свойства НСИ которого нужно использовать для этого параметра.
-
N
Локальное имя.
-
T
Тип параметра (ID8ParamInfo.ParamType).
Может быть:A (Analogue)- аналоговый (это значение по умолчанию)D (Discret)- дискретныйV (Vector)- векторный
-
V
Значение константы.
-
U
Единицы измерения. Если указано для дискретного параметра, то означает не единицы измерения, а название дискретного состояния.
Примеры:
`T=A`N="Аналоговая константа"`V=12.3`U=кг `T=D`N="Дискретная величина"`V=1`U=включено `T=V`N="Строковое значение"`V="любой текст"
Параметры-константы для кусочно линейной величины¶
Аналогичны параметрам CONST, но значение задается в виде кусочно-линейного графика во времени.
<ConstpwlParamDef> ::= "`" [{ "`" <ConstpwlPropName> "=" <PropValue> }] "`CONSTPWL"
<ConstpwlPropName> ::= <CommonPropName> | "N" | "T" | "ST" | "T0" | "TZ" | "V" | "U"
-
N
Локальное имя.
-
T
Тип параметра (ID8ParamInfo.ParamType).
Может быть:A (Analogue)- аналоговый (это значение по умолчанию)D (Discret)- дискретный
-
ST
Подтип параметра (ID8ParamInfo.Subtype)
Например:ST=StepAvg
-
T0
Начальный момент времени для кусочно-линейного графика, указанного в свойствеV. Задается в форматеDateTime. Если содержит пробелы, то значение нужно заключить в кавычки. Если не указано, то используется текущее время (на момент создания параметра).
-
TZ
Часовой пояс для моментов времени в атрибутахT0иV.
-
V
Точки графика значения во времени. Моменты времени задаются относительноT0.
-
U
Единицы измерения.
Значение V задается в виде строки, разделенной запятыми. Каждая часть строки - это точка на графике, записанная виде смещения времени от T0 либо даты/времени и значения параметра, разделенных двоеточием:
<ConstpwlValueStr> ::= "(" <Timeoffset> : <Value> [{ "," <Timeoffset> : <Value> }] ")"
<Timeoffset> ::= ( number ("ms" | "s" | "m" | "h" | "D" | "M" | "Y") ) | "-inf" | "+inf" | datetime
<datetime> ::= YYYY [DD] [mm] [HH] [mm] [ss] [fff] [L]
<Value> ::= double
В качестве смещения времени можно указать
+inf или -inf, что означает плюс/минус бесконечность.Если указано не смещение, а абсолютная величина даты/времени, то в конце может быть указана буква
L, что означает часовой пояс пользователя.
Примеры:
`T0=2017-01-01`V=(0:0,1h:10,3h:10,5h:9.5,+inf:9.5)`CONSTPWL `V=(-inf:100,0:100)`CONSTPWL `V=(20170103L:10,20170104L:13,20170105L:12,+inf:12)`CONSTPWL
Параметры-обертки¶
Предназначены для эффективной корректировки значения, единиц измерения и времени другого параметра. Для этого создается параметр-обертка, у которого НСИ совпадает с корректируемым параметром (и может быть дополнительно изменено), а значения параметра-обертки вычисляются от значений корректируемого параметра.
<WrapperParamDef> ::= "`" [{ "`" <WrapperPropName> "=" <PropValue> }] "`WRP(<WrappedParam>)"
<WrapperPropName> ::= <CommonPropName> | "CABS" | "K" | "C" | "T" | "U"
-
WrappedParam
SID параметра, вокруг которого создается обертка.
-
K
Коэффициент, на который нужно умножить значение параметраWrappedParam, чтобы получить значение параметра-обертки. Коэффициент применяется и к числовым полям НСИ, таким как границы достоверности, уставки и пр. По умолчанию 1.
-
C
Коэффициент, который нужно прибавить к значению параметраWrappedParam, чтобы получить значение параметра-обертки. Коэффициент применяется и к числовым полям НСИ. По умолчанию 0.
-
CABS
Еслиtrue, то коэффициентCбудет помножен на модуль исходного значения. По умолчаниюfalse.
-
T
Временной сдвиг, который нужно прибавить к метке времени значения параметраWrappedParam, чтобы получить метку времени значение параметра-обертки.
-
U
Единицы измерения, который нужно использовать взамен единиц измерения параметраWrappedParam.
Значением параметра-обертки W от параметра X будет:
W = | K * X + C , CABS = false
| K * X + C * |X| , CABS = true
Например:
`N="Замена килограмм на тонны"`K=0.001`U=т`WRP(INST.1) `N="Сдвиг меток времени на час вперед"`T=1h`WRP(INST.2)
Параметры-формулы¶
Параметры, значения которых вычисляются с помощью выражения языка формул D8FL.
<FormulaParamDef> ::= "`" [{ "`" <FormulaPropName> "=" <PropValue> }] "`F(<FlMacro>)"
<FormulaPropName> ::= <CommonPropName> | "T" | "ST" | "R" | "r" | "S" | "I" | "W" | "WS" | "L" | "TZ" | "CS" | "O"
-
FlMacro
Сценарий расчета на языкеD8FL. Значением параметра будет результат последнего выражения в сценарии.
-
T
Тип параметра (ID8ParamInfo.ParamType).
Может быть:A (Analogue)- аналоговый (это значение по умолчанию)D (Discret)- дискретный
-
ST
Подтип параметра (ID8ParamInfo.Subtype)
Например:ST=StepAvg
-
R
Максимальный интервал пересчета значения. Если интервал пересчета не задан (или ноль), то текущее значение параметра будет обновляться при изменении исходных данных. Если заданR, то текущее значение будет обновляться по истечении указанного интервала с момента предыдущего расчета при условии, что исходные данные изменились. По умолчанию не задан.
-
r
Минимальный интервал пересчета значения. Если интервал пересчета не задан (или ноль), то текущее значение параметр будет обновляться при изменении исходных данных. Если заданr, то текущее значение будет обновляться либо при изменении исходных данных, либо по истечении указанного интервала с момента предыдущего расчета. По умолчанию не задан.
-
S
Шаг значения (ID8ParamInfo.Step). По умолчанию не задан.
-
I
Интервал значения (ID8ParamInfo.Interval). По умолчанию не задан.
-
W
Окно значения. Величина временного интервала, необходимого для расчета одного значения параметра.
Если запрашивается значение вычисляемого параметра за моментt, то считается, что для расчета этого значения необходимы данные параметров-аргументов формулы за интервал(t; t + W).
-
WS
Шаг окна. Используется для организации расчётов за интервалы нарастающим итогом, например, среднее значение за истекшие часы с начала суток.
Если указанWS, то в качестве исходных данных для значения с меткой времениtбудут использованы данные за интервал от ближайшего слева момента с шагомWSдоS.
Для такого значенияIиWдолжны быть нулевыми, аSненулевым.
-
L
Задержка значения. Время, на которое отстают значения параметра от текущего времени или текущих меток времени параметров, используемых в формуле.
-
TZ
Строка описания часового пояса, в котором рассчитываются метки времени параметра. По умолчанию - UTC.
-
CS
Задает контрактный час или контрактные сутки. Задается в виде величиныD8TimeInterval, которая будет прибавлена к исходной метке времени. Если указан, то применяется в часовом поясеTZ.
-
O
Дополнительные опции параметра. Возможные значения:NoRealtime
У параметра не будет текущего значения и он не будет подписываться на изменения параметров-аргументов.NoArchive
У параметра не будет архивных значений. Все запросы архивных данных вернут пустой массив.IndependentTime
Меткка времени текущего значения параметра определяет только по текущему времени и настройкам параметра, а метки времени текущих значений параметров-аргументов не учитываются.
Примеры:
`N=Сумма`S=1s`L=10s`F(INST.1 + INST.2) `N=Усреднение`I=1h`F( TAVG(INST.1) ) `N=Нар_итог`WS=1D`S=1h`F( TAVG(INST.1) ) `N=Смена_сум`Сумма`I=1D`TZ=+5`CS=8h`F(TITG(INST.1))
В качестве контекста выполнения сценария FlMacro используются свойства параметра, текущее время и настройки сессии, получаемые от хост-приложения (текущий часовой пояс, текущий язык и пр.).
Симуляционные параметры¶
Возвращает симулированное значение аналитической функции от времени. Опциональным добавляется псевдо-случайный шум.
<SimParamDef> ::= "`" [{ "`" <SimPropName> "=" <PropValue> }] "`SIM" ["(<TimeFunction>)"]
<SimPropName> ::= <CommonPropName> | "T" | "S" | "I" | "L" | "P" | "FP" | "A" | "U" | "TU" | "T0" | "CS" | "TZ" | "KN" | "RT"
-
T
Тип параметра (ID8ParamInfo.ParamType).
Может быть:A (Analogue)- аналоговый (это значение по умолчанию)D (Discret)- дискретный
-
S (step)
Шаг значения (ID8ParamInfo.Step). По умолчанию - одна секунда (1s).
-
I (interval)
Интервал значения (ID8ParamInfo.Interval). По умолчанию - пустой, т.е. параметр будет мгновенным.
-
L (lag)
Задержка значения (только для данных реального времени).
-
P (period)
Период значения. По умолчанию - один час (1h).
ЕслиPуказан, то считается, что аргументаxфункцииTimeFunctionзадается в виде фазы в радианах. Иначе считается, чтоxзадается в виде разницы во времени относительно начала отсчетаT0и измеряется в интервалах времениTU.
-
FP (failure period)
Периодичность отказов. По умолчанию - не задана.
ЕслиFPуказан, то для значений будут сымитированы псевдослучайные периоды недостоверных данных. Длительность таких периодов задается этим параметром.
-
<TimeFunction>
Функцияf(x, A)от времени и матрицы коэффициентов, используемая для расчета значений параметра.
В записи функции помимо математических операторов можно использовать аргументxи коэффициентыa0, a1, ..., an.
По умолчанию используется функцияa0 + sin(x) * a1.
-
A
Вектор коэффициентов для функцииTimeFunction. Задается в квадратных скобках, в виде чисел, разделенных пробелами. Первое число соответствет коэффициентуa0, второе -a1и т.д. Например:A=[0 1.1 2.2]
-
U (units)
Единицы измерения параметра.
-
TU (time unit)
Величина временного интервала, соответствующего единицы аргументаxфункцииTimeFunction. По умолчанию1s- одна секунда.
-
T0 (time zero)
Дата и время начала отсчета (нуля) аргументаxфункцииTimeFunction. Задается в UTC. По умолчанию используется текущее время на момент создания параметра.
-
CS
Задает контрактный час или контрактные сутки. Задается в виде величиныD8TimeInterval, которая будет прибавлена к исходной метке времени. Если указан, то применяется в часовом поясеTZ.
-
TZ
Строка описания часового пояса, в котором рассчитываются метки времени параметра. По умолчанию - UTC.
-
KN (K noise)
Уровень шума, добавлемого к значению параметра. При нулевом значение шум не добавляется.
-
RT (realtime)
Признак того, нужно ли генерировать текущие данные для параметра. Еслиtrue, то текущие данные генерируются, а архивные значения за будущее время считаются неизвестными. Еслиfalse, то текущие данные не генерируются, а архивные значения считаются известными за любой момент времени.
Примеры:
`SIM `N=Синусоиды`U=см`S=10s`L=3s`P=2m`SIM(sin(x) + 0.7 * sin(3*x)) `N=Полином`RT=false`TU=1s`A=[1 2 3 4]`SIM(a0 + a1*x + a2*x*x + a3*x*x*x) `N=КонстантаПлюсШум`KN=1`SIM(10) `N=ВклВыкл`T=D`S=30s`P=1h`FP=1h`SIM(round(0.5 + sin(x) * sin(1 + x * 0.7) * 0.5 ))
Диагностические параметры¶
<DiagParamDef> ::= "`" [{ "`" <CommonPropName> "=" <PropValue> }] "`DIAG(<DiagParamSpec>)"
Значение DiagParamSpec определяет подвид параметра:
-
ParamCount
Длина коллекции параметров инстанса. Включает и жесткие ссылки на параметры, слабые ссылки параметры, и пустые элементы, образовавшиеся после удаления параметров.
-
ParamAliveCount
Число параметров, за исключением параметров, которые были уничтожены сборщиком мусора (для параметров, созданных со слабой ссылкой).
-
ParamAllocatedCount
Число непустых записей в коллекции параметров. Включает жесткие и слабые ссылки на параметры, но не включает пустые элементы, образовавшиеся после удаления параметров.
-
ParamDeletedCount
Число удаленных параметров.
Примеры:
`DIAG(ParamCount) `N="Кол-во удаленных параметров"`U=шт`DIAG(ParamDeletedCount)
История версий¶
-
1.0.21.0908- Добавлена поддерка атрибута
TZдля симуляционных параметров.
- Добавлена поддерка атрибута
-
1.0.20.0304- Добавлена возможность задания имен состояний в шкале.